<template>
  <div class="box">
    <el-form
      :model="ruleForm"
      :rules="rules"
      :inline="false"
      ref="ruleForm"
      label-width="200px"
      class="demo-ruleForm"
      size="medium"
    >
      <div class="must">
        <el-form-item label="商标注册号：" prop="number">
          <el-input v-model="ruleForm.number" placeholder="请填写商标注册号"></el-input>
          <div class="inform">
            <img src="../../assets/imgs/inform.png" alt="通知" />
            <div class="content">
              <span>示例:123456789123456</span>
            </div>
          </div>
        </el-form-item>
        <el-form-item label="原注销申请号：" prop="oldnum">
          <el-input v-model="ruleForm.oldnum" placeholder="请填写原注销申请号"></el-input>
          <div class="inform">
            <img src="../../assets/imgs/inform.png" alt="通知" />
            <div class="content">
              <span>示例:12345221312</span>
            </div>
          </div>
        </el-form-item>

        <el-form-item class="upload" label="网上确认书：" prop="upload">
          <upfile :callback="setSure">
            <img v-if="reveal" :src="echoImg" alt style="width:148px;height:148px" />
          </upfile>
          <div class="exam-img">
            <div class="img-inform">
              <img src="../../assets/imgs/inform.png" />
              <span>示例:</span>
            </div>
            <examimg :imgType="7"></examimg>
          </div>
          <div>
            <span class="informs">
              请点此
              <a :href="mconfig.host + '/file/download?fileType=4'">下载网上确认书</a>,查到相应商标编号并填充
            </span>
            <br />
            <span class="notice">请将下载的网上确认书填写完成, 然后上传JPG文件</span>
          </div>
        </el-form-item>
        <!-- 添加其他有效证件 -->
        <el-form-item label="其他附件：" prop="dengjichenluofile">
          <uploads
            :callback="backUrl"
            :delUrl="delUrl"
            :file_config="{field:'dengjichenluofile'}"
            :list="ruleForm.dengjichenluofile"
          ></uploads>
          <div class="inform">
            <img src="../../assets/imgs/inform.png" alt="通知" />
            <div class="content">
              <span>提示：其他附件</span>
            </div>
          </div>
        </el-form-item>
        <!-- 撤回理由 -->
        <el-form-item label="撤回理由：" prop="reason">
          <el-input type="textarea" v-model="ruleForm.reason" placeholder="请填写撤回理由"></el-input>
        </el-form-item>
        <div class="line"></div>
        <el-form-item label="是否共有商标：" prop="radio">
          <el-radio-group v-model="ruleForm.radio">
            <el-radio class="input" :label="1">是</el-radio>
            <el-radio class="input" :label="0">否</el-radio>
          </el-radio-group>
        </el-form-item>
        <div v-if="ruleForm.radio" class="common">
          <el-form-item label="其他共有人"></el-form-item>

          <el-form-item label>
            <both :callback="getBoth" :append="alterAppend" :class_id="$route.query.id"></both>
          </el-form-item>
        </div>

        <el-form-item>
          <div class="btns">
            <el-button type="primary" @click="outStep">上一步</el-button>
            <el-button type="primary" @click="submitCheck('ruleForm')">提交并审核</el-button>
          </div>
        </el-form-item>
        <el-dialog
          class="dialog"
          :show-close="false"
          :center="true"
          :visible.sync="dialogVisible"
          width="460px"
          :before-close="handleClose"
        >
          <div class="hint">
            <img src="../../assets/imgs/branch.png" alt="提示图片" />
            <span>选择您想去办理的网点</span>
          </div>
          <el-form-item label="选择网点：" prop="value">
            <el-select v-model="ruleForm.value" placeholder="请选择">
              <el-option
                v-for="item in options"
                :key="item.deptId"
                :label="item.deptName"
                :value="item.deptId"
              >
                <span style="float: left">{{ item.deptName }}</span>
                <span style="float: right; color: #8492a6; font-size: 13px">{{ item.address }}</span>
              </el-option>
            </el-select>
          </el-form-item>
          <div slot="footer" class="dialog-footer">
            <el-button class="btnshut" type="primary" @click="dialogVisible = false">取 消</el-button>
            <el-button type="primary" @click="submitForm('ruleForm')">确 定</el-button>
          </div>
        </el-dialog>
        <el-dialog
          class="hintMsg"
          :show-close="false"
          title="温馨提示"
          :visible.sync="centerDialogVisible"
          width="462px"
        >
          <span>您的信息已提交，工作人员将在3-5日内对你的信息审核，审核通过后即可预约业务，审核结果将通过短信的方式发送给你。</span>
          <span slot="footer" class="dialog-footer">
            <el-button type="primary" @click="skip">确 定</el-button>
          </span>
        </el-dialog>
      </div>
    </el-form>
  </div>
</template>

<script>
import BaseUpload from "./BaseUpload";
import upfile from "../common/upfile.vue";
import both from "../common/both.vue";
import examimg from "../common/imgExample";
import uploads from "../common/uploads";
export default {
  data() {
    return {
      // 回显图片
      echoImg: "",
      //  控制图片的显
      reveal: "",
      //网点列表
      options: [],
      //提交成功弹出框变量
      centerDialogVisible: false,
      //网点弹出框控制变量
      dialogVisible: false,
      //提交表单
      formData: new FormData(),
      //表单唯一id
      classId: "",
      // 是否上传网上确认书
      uploadImg: false,
      //共有人模板
      common: [],
      //共有人模板
      commonModel: {
        name: "名称(中文)：",
        englishName: "(英文)：",
        site: "地址(中文)：",
        englishSite: "(英文)：",
        value: "",
        englishValue: "",
        siteValue: "",
        englishSiteValue: "",
      },
      //实际模板
      modelcommon: {
        partNameCh: "",
        partNameEn: "",
        partAddrCh: "",
        partAddrEn: "",
      },
      //填写的信息
      ruleForm: {
        number: "",
        oldnum: "",
        radio: 0,
        reason: "",
        value: "",
        qrfile: "", // 网上确认书
        commonArr: [],
        dengjichenluofile: [],
        // nochang:true,
      },
      rules: {
        number: [
          {
            required: true,
            message: "请输入商标注册号",
            trigger: "blur",
          },
          {
            pattern: /^[A-Za-z0-9]{0,30}$/,
            message: "请输入正确的商标注册号",
            trigger: "blur",
          },
          {
            pattern: /^.{0,255}$/,
            message: "请输入正确的商标注册号",
            trigger: "blur",
          },
        ],
        // dengjichenluofile: [
        //   { required: true, message: "附件不能为空", trigger: "change" },
        // ],
        oldnum: [
          {
            required: true,
            message: "请输入商标注册号",
            trigger: "blur",
          },
          {
            pattern: /^[A-Za-z0-9]{0,30}$/,
            message: "请输入正确的商标注册号",
            trigger: "blur",
          },
        ],
        radio: [
          {
            required: true,
            message: "请选择",
            trigger: "change",
          },
        ],
        reason: [
          {
            required: true,
            message: "选项不能为空",
            trigger: "blur",
          },
          {
            pattern: /^.{0,255}$/,
            message: "您的输入太长",
            trigger: "blur",
          },
        ],
      },
      append: [], //其他人信息
      alterAppend: [],
    };
  },
  mounted() {
    //获取从存储在路由中的classId
    this.classId = this.$route.query.id;
    //获取网点列表
    this.$http.get("trademark/system/dept/findDept").then((res) => {
      this.options = res.data.data;
    });
    //修改申请信息的数据回显（第三那部分）
    if (this.$store.state.stateJdg) {
      this.$store.state.alterData.append &&
        (this.alterAppend = this.$store.state.alterData.append); //共有人
      this.uploadImg = true;

      this.ruleForm.number = this.$store.state.alterData.data.registNum; //  商标注册号

      this.ruleForm.oldnum = this.$store.state.alterData.data.oldApplicationNum; //  原注销申请号

      this.ruleForm.radio = parseFloat(this.$store.state.alterData.data.share); //  是否共有商标

      this.ruleForm.common = this.$store.state.alterData.append; //  其他共有人

      this.ruleForm.reason = this.$store.state.alterData.data.reasonsWithdrawal; //  撤回理由

      this.ruleForm.qrfile = {}; // 确认证书(添加修改)

      this.ruleForm["dengjichenluofile"] = JSON.stringify(this.$store.state.alterData.data.otherfile);

      this.echoImg =
        this.mconfig.host + this.$store.state.alterData.public.qrfile; // 确认证书（页面回显）

      this.reveal = this.$store.state.stateJdg;
    }
  },
  watch: {},
  methods: {
    getBoth(value) {
      //共有人数据
      this.append = value;
    },
    // 提交并审核验证
    submitCheck(formName) {
      this.$refs[formName].validate((valid) => {
        if (!valid) {
          this.open1("存在错误的格式填写！", "error");
          return;
        }
        if (this.uploadImg == false) {
          //确认书
          this.open1("请上传商标确认书！", "error");
          return;
        }
        if (this.ruleForm.radio == 0) {
          //否
          this.dialogVisible = true;
          return;
        }
        if (this.append.length == 0) {
          //没填共有人
          this.open1("请填写共有人信息！", "error");
          return;
        }
        if (true) {
          //显示
          this.dialogVisible = true;
        }
      });
    },
    //提示模板
    open1(msg, types = "success") {
      // console.log("111");
      this.$message({
        message: msg,
        type: types,
      });
    },
    //   确认书
    // 上传网上确认书
    setSure(files) {
      if (files.length > 0) {
        this.uploadImg = true;
        this.ruleForm.qrfile = files[0];
        this.reveal = false;
      } else {
        this.uploadImg = false;
        this.ruleForm.qrfile = "";
      }
    },
    //其他证件
    backUrl(url, file_config) {
      this.ruleForm[file_config["field"]].push(url);
    },
     delUrl(index,file_config){
          this.ruleForm[file_config["field"]].splice(index,1)
          this.$set(this.ruleForm,file_config["field"],this.ruleForm[file_config["field"]])
      },
    //返回上一步
    outStep() {
      this.$emit("wp", 1, "请填写申请业务信息");
    },

    //弹出框的选项确认框
    handleClose(done) {
      this.$confirm("确认关闭？")
        .then((_) => {
          done();
        })
        .catch((_) => {});
    },

    //表单提交事件
    submitForm(formName) {
      let _this = this;
      // 验证
      console.log(this.ruleForm.value);
      if (this.ruleForm.value == "") {
        this.open1("请选择网点编号", "error");
        return false;
      }

      //每次提交重新生成新的FormData用于储存新的数据
      this.formData = new FormData();
      this.dialogVisible = false;

      // 公共部分
      let arr = this.$store.getters.getRuleForm;
      for (let key in arr) {
        this.formData.append(key, arr[key]);
      }
      //  我的
      this.formData.append("registNum", this.ruleForm.number); //  商标注册号：
      this.formData.append("oldApplicationNum", this.ruleForm.oldnum); //  注销申请号
      this.formData.append("share", this.ruleForm.radio); //  是否共有商标
      this.formData.append("reasonsWithdrawal", this.ruleForm.reason);
      console.log(this.ruleForm.value,"2243412")
      this.formData.append("branchNetworkId", this.ruleForm.value); //  网点编号
      this.formData.append("appliType", this.$store.state.picType); //  申请类型
      this.formData.append("classId", this.classId); //  本条记录对应业务在24种业务表里的编号
      if (this.$store.state.stateJdg == false) {
        //   操作类型（0保存，1调整）
        this.formData.append("optype", 0);
      } else {
        this.formData.append("optype", 1);
        this.formData.append("id", this.$store.state.alterData.public.id); //   id号
        this.formData.append(
          "modelId",
          this.$store.state.alterData.public.modelId
        ); //   modelid的传递
      }
      this.formData.append("qrfiles", this.ruleForm.qrfile); //    网上确认书

      this.formData.append(
        "otherfile",
        JSON.stringify(this.ruleForm.dengjichenluofile)
      );

      this.formData.append(
        //  共有人
        "proAppends",
        JSON.stringify(this.append)
      );

      //配置请求头
      var config = {
        header: {
          "Content-Type": "multipart/form-data",
        },
      };
      var url = this.$store.state.stateJdg
        ? "/trademark/proWotca/modifyNoCommit"
        : "trademark/proWotca/firstSubmit";
      var data = this.formData;
      // axios向后端发送数据
      this.$http
        .post(url, data, config)
        .then(function (response) {
          //若状态码不为200则不跳转
          if (response.data.code != 200) {
            _this.open1("提交失败", "error");
            return;
          }

          _this.centerDialogVisible = true;
        })
        .catch(function (error) {});
    },
    //跳转函数
    skip() {
      this.centerDialogVisible = false;
      this.open1("操作成功");
      this.$router.push({
        path: "/business/myBusiness/auditing",
      });
    },
  },
  components: {
    BaseUpload,
    upfile,
    both,
    examimg,
    uploads,
  },
};
</script>

<style lang="less" scoped>
.btns {
  display: flex;
  justify-content: center;

  .el-button {
    margin: 0 20px;
  }
}

.btnshut {
  color: #fff;
  background-color: #6e7275;
  border-color: #6e7275;
}

.btnBox {
  margin-left: 230px;
  margin-bottom: 20px;
}

.box {
  display: flex;
  padding-right: 280px;
  flex-direction: column;
  align-items: center;
  // margin-top: 100px;
  width: 100%;
  min-height: 800px;

  .tle {
    font-size: 24px;
    color: #000;
  }

  .el-input--medium {
    width: 80%;
  }

  .el-form {
    .el-input {
      width: 80%;
    }
  }

  .must,
  .select {
    display: flex;
    position: relative;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 30px 0 30px;
    margin-bottom: 80px;
    border-radius: 10px;

    .el-form-item {
      width: 680px;
    }

    .inline {
      display: flex;

      .el-form-item {
        margin: 0;
        width: 290px !important;
      }
    }
  }

  .must {
    margin-bottom: 20px;
  }

  .imgHint {
    margin: 5px;
    font-size: 12px;
    line-height: 17px;
    color: #f5222d;
  }

  .affirm {
    font-size: 12px;
    color: #a0a3a5;

    a {
      text-decoration: none;
      color: #3685ff;
    }
  }

  .upload {
    margin: 20px 0;
  }

  .type-number {
    width: 250px;
  }

  .informs {
    position: absolute;
    width: 500px;
    font-size: 12px;
    color: #a0a3a5;

    a {
      text-decoration: none;
      color: #5296ff;
    }
  }

  .inform {
    display: flex;
    align-items: center;
    position: absolute;
    top: 0;
    left: 80%;
    width: 300px;
    height: 32px;
    color: #f96900;
    font-size: 10px;
    line-height: 14px;

    img {
      margin: 11px;
    }

    .content {
      display: flex;
      flex-direction: column;

      .ts {
        text-indent: 3em;
      }
    }
  }

  .notice {
    color: #ff3d3d;
    font-size: 12px;
  }

  .tle {
    list-style: none;
    margin: 40px 0 20px;
    font-size: 24px;

    & ~ .tle {
      color: #bbb;
    }
  }

  .hint {
    color: #f96900;
    background-color: #fff;

    .el-form-item__label {
      width: 150px;
    }

    img {
      width: 20px;
    }
  }

  .el-steps {
    width: 70%;
    height: 200px;
  }

  .el-button {
    //display: block;
    display: inline;
    margin: 0 20px;
    // background-color: #67c23a !important;
    // border-color: #67c23a !important;
  }

  .common .el-button {
    background-color: #fff !important;
    border-color: #bbb !important;
  }
}

.dialog-footer {
  display: flex;
  justify-content: space-between;
  color: #fff;

  .lan {
    background-color: #2c9dfc !important;
    border-color: #2c9dfc !important;
  }
}

.dialog /deep/.el-form-item__label {
  width: 100px !important;
}

.dialog /deep/.el-form-item__content {
  margin-left: 100px !important;
  display: flex;
  justify-content: left;
}

.dialog /deep/.el-input {
  width: 250px;
}

.el-checkbox-group {
  line-height: 14px;
}

// .is-checked/deep/.el-radio__inner,
// .is-checked/deep/.el-checkbox__inner {
//   border-color: #999999;
//   background: #999999;
// }
// .el-radio/deep/.el-radio__inner:hover {
//   border-color: #999999 !important;
// }
// .is-checked/deep/.el-radio__label,
// .is-checked/deep/.el-checkbox__label {
//   color: #333;
// }
// .is-focus .el-checkbox__inner {
//   border-color: #999999 !important;
// }
// .el-checkbox/deep/.el-checkbox__inner:hover {
//   border-color: #999999 !important;
// }
.el-step__head.is-process {
  border-color: #f96900;
  color: #f96900 !important;
}

.hintMsg {
  /deep/.el-dialog__header {
    display: flex;
    justify-content: center;
    font-weight: bold;
  }

  .dialog-footer {
    justify-content: center;

    .el-button {
      border-color: #2c9dfc !important;
      background: #2c9dfc !important;
    }
  }
}

.line {
  width: 55vw;
  max-width: 1200px;
  margin: 20px auto;
  margin-left: 217px;
  height: 1px;
  min-width: 630px;
  border-top: 1px dashed #d9d9d9;
}
.exam-img{
  position: absolute;
  top: 0;
  left: 465px;
}
.img-inform{
  img{
    position: absolute;
    top: 50%;
    left: 50%;
    margin-left: -140px;
    transform: translate(-50%,-50%);
  }
  span{
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%,-50%);
      white-space: nowrap;
      margin-left: -100px;
      width: 50px;
      color: #f96900;
  }
}
</style>
